#define  _CRT_SECURE_NO_WARNINGS 1

//#include<bits/stdc++.h>
//#define sd(n) scanf("%d",&n) 
//#define sld(n) scanf("%lld",&n)
//#define pd(n) printf("%d", (n))
//#define pld(n) printf("%lld", n)
//#define all(x) (x).begin(),(x).end()
//#define rall(x) (x).rbegin(),(x).rend()
//const int N = 2e5;
//const int maxn = 1e6;
//typedef long long int ll;
//using namespace std;
////----------------------------------------------------------------------------//
//
//void solve()
//{
//
//}
//
//int main()
//{
//	int T;
//	sd(T);
//	while (T--)
//	{
//		solve();
//	}
//	return 0;
//}



#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N = 2e5;
#define INF 0x7fffffff
typedef long long int ll;
using namespace std;
//----------------------------------------------------------------------------//
//int a[40];
//void solve()
//{
//	int n;
//	sd(n);
//	for (int i = 0; i < n; i++) sd(a[i]);
//
//	int ans = 0;
//	if (n == 1)
//	{
//		pd(0);
//		puts("");
//		return;
//	}
//	for (int i = n-1; i > 0; i--)
//	{
//		if (a[i] == 0 && a[i - 1] != 0)
//		{
//			pd(-1);
//			puts("");
//			return;
//		}
//		while (a[i] <= a[i - 1])
//		{
//			a[i-1]/= 2;
//			ans++;
//		}
//	}
//	pd(ans); puts("");
//
//}

//bool strongPasswordCheckerII(string password)
//{
//    bool is_letter_s = false;
//    bool is_letter_b = false;
//    bool is_num = false;
//    bool is_ch = false;
//    bool is_same = false;
//
//    string s1 = "!@#$%^&*()-+";
//    for (int i = 0; i < password.size(); i++)
//    {
//        char cur = password[i];
//        char next = password[i + 1];
//        if (cur >= 'a' && cur <= 'z') is_letter_s = true;
//        if (cur >= 'A' && cur <= 'Z') is_letter_b = true;
//        if (cur >= '0' && cur <= '9')  is_num = true;
//
//        //for (int j = 0; j < s1.size(); j++)
//        //{
//        //    if (cur == s1[j])
//        //    {
//        //        is_ch = true;
//        //        break;
//        //    }
//        //}
//
//        if (i <= password.size() - 1 && isalpha(cur) && isalpha(next))
//        {
//           
//            if (cur == next)
//            {
//                is_same = true;
//            }
//        }
//       
//    }
//    
//    if (!is_letter_s || !is_letter_b || !is_num || !is_ch || is_same || password.size() < 8) return false;
//    return true;
//}

bool strongPasswordCheckerII(string password)
{
    bool is_letter_s = false;
    bool is_letter_b = false;
    bool is_num = false;
    bool is_ch = false;
    bool is_same = false;

    string s1 = "!@#$%^&*()-+";
    for (int i = 0; i < password.size(); i++)
    {
        char cur = password[i];
        char next = password[i + 1];
        if (cur >= 'a' && cur <= 'z') is_letter_s = true;
        if (cur >= 'A' && cur <= 'Z') is_letter_b = true;
        if (cur >= '0' && cur <= '9')  is_num = true;

        for (int j = 0; j < s1.size(); j++)
        {
            if (cur == s1[j])
            {
                is_ch = true;
                break;
            }
        }

        if (i <= password.size() - 1 && isalpha(cur) && isalpha(next))
        {
            if (cur == next)
            {
                is_same = true;
            }
        }

    }
    cout << is_letter_s << " " << is_letter_b << " " << is_num << " " << is_ch << " " << is_same << " " << password.size();
    if (password.size() < 8) cout << "yes" << endl;
    if (!is_letter_s || !is_letter_b || !is_num || !is_ch || is_same || password.size() < 8) return false;
    return true;
}


int main()
{
	///*int T;
	//sd(T);
	//while (T--)
	//{
	//	solve();
	//}*/
	//int a[] = { 0,1,2,2,2,5 };
	//int n = 5;
	//if (is_sorted(a + 1, a + 1 + n)) puts("YES");
    strongPasswordCheckerII("0Aa!a!a!");
	return 0;
}